1. Field of the Invention
The present invention generally relates to computer and communications systems, and more particularly to a method for storing and delivering data in an on-time manner across a communications environment using a computer system, and still more particularly to the efficient storage and synchronized delivery of multimedia content over a network or broadcast environment.
2. Description of the Related Art
Information technology has progressed immensely in the past several decades, but changing demands continue to place new burdens on information systems. In particular, the storage and distribution of data has become increasingly difficult as ever larger amounts of information are required to be provided across communications environments. For example, broadcast media (television, radio, etc.) must constantly stockpile old information, while gathering new details for programming on current events. Another example relates to computer applications which are capable of using (and often demand access to) very large files, such as multimedia files containing video, audio, text and graphics content.
One approach to reducing data storage and distribution volume relies on shared resources, such as those provided by a "client-server" computer network. A typical client-server network has several computer servers which are interconnected, either directly to each other or indirectly through one of the other servers, and which provide information to individual users and applications at client workstations. The information provided to users can be in the form of programs which run locally on a given workstation, or in the form of data such as files used by other programs. Users can also communicate with each other in real-time over the network, as well as by delayed file delivery. The network can be local in nature, or can be further connected to other systems. This construction is generally applicable to very large networks such as the Internet, as well as small networks such as a local area network (LAN).
As the price and performance of client-server networks has improved, this technology has been applied more to digital multimedia data sharing. Digital multimedia files carrying video content, audio content, or both, can be transmitted in a number of standard formats, such as audio video interleave (AVI), movie (MOV), and moving picture experts group (MPEG). Digital data can be converted to an analog format such as National Television Standards Committee (NTSC) or Phase Alternation Line (PAL). As noted above, these digital multimedia files are relatively large, such as one megabyte of data for a short video clip, and several gigabytes for a lengthy film or other presentation. Because encoding of digital multimedia data (especially video data) requires a large amount of storage and a real-time constant rate of data delivery (to avoid jittering or breaking up of smooth motion video), it presents unique problems for multimedia client-server computing. Conventional multimedia servers lack the capability for integrated real-time content loading (input) and data streaming (output). These services are usually made available as separate and non-overlapping steps or operations, which tend to be inefficient and time consuming. Further, these solutions do not scale well when a large number of content loading and data streaming operations are required.
Another limitation of prior art multimedia servers relates to application programming interfaces (APIs), which are set by the server and used by the client to access services provided by the server. The functional deficiencies of server access interfaces make it difficult to develop an integrated application that can take advantage of concurrency and real-time, shared access to multimedia data that is available in the server. A lack of real-time access for real-time stored data can result in loss of business opportunity.
Even if a real-time constant rate of data delivery were achieved to ensure a high quality presentation of the multimedia content, there is no guarantee that the presentation would be smooth, since delays arising from the data distribution topology can adversely affect the presentation, and prevent synchronization between multiple (concurrent or successive) multimedia components. These delays are not generally predictable and vary from environment to environment. This problem can arise, for example, when an audio-only file (e.g., background music or narration) is to be played with a separate but associated video-only file, or when a series of multimedia files are intended to be viewed without any break between the files, i.e., no pause between the termination of one file and the beginning of the next. This unpredictable delay causes difficulty in scheduling and synchronizing multimedia data delivery from multiple delivery sources. It is especially undesirable with video.
In light of the foregoing, it would be desirable to devise a method and system for accessing large volumes of data in a more efficient and reliable manner, and to enable the user (such as a program scheduling application) to schedule a multimedia data presentation received from different sources. It would be further advantageous if the method and system could be used to provide multimedia server programming services which were flexible enough to allow simultaneous multimedia inputs and outputs, while sharing server and network resources in real-time to optimize server resource utilization without sacrificing quality of services to a client.